Field of the Invention
The present invention relates generally to computer-aided design (CAD) applications and, more specifically, to scalable and precise fitting of NURBS surfaces to large-size mesh representations.
Description of the Related Art
In the field of computer-aided design and manufacturing, a physical model of a new design is created by one or more engineers via a particular medium. For example, a physical model for a new automobile body design could be formed from clay. The surface of the physical model is then scanned via some form of 3D digital data acquisition technology, such as a laser scanner, to create a machine-readable, three-dimensional (3D) representation of the physical model. Alternatively, the new design can be generated via a computer using one or more 3D modelling programs, thereby obviating the need for creating and scanning a physical model of the new design. In either case, the output of the scanning technique or modeling program is a large-size mesh representation of the new design that consists of a large number of geometry primitives, such as triangles, quadrilaterals, or surface patches. Each geometry primitive is represented by multiple mesh points at particular positions in 3D space. The large-size mesh representation may be further manipulated via a computer-aided design system. Once complete, the large-size mesh representation can then be transferred to a manufacturing facility for fabrication of one or more prototypes of the new design.
In order to capture the fine surface details that may be associated with complex physical models, a larger-size mesh representation for a new design may typically contain many millions or billions of vertices. Because of the size and amount of information associated with such large-size mesh representations, these representations are oftentimes difficult to process and manipulate in current CAD systems without noticeable performance degradation. Consequently, large-size mesh representations are usually converted into high-level smooth-surface representations that are compact in size and include the fine detail of the original large-size mesh representations. These high-level smooth-surface representations are easier to process and manipulate in current CAD program because local and global changes and edits can be made to the high-level smooth-surface representation intuitively via manipulating control points associated with the representation.
One such high-level smooth-surface representation is non-rational uniform B-spline (NURBS) surface, which is a popular surface representation for industrial design applications and data exchanges between CAD systems. A large-size mesh representation can be converted into a NURBS surface via a fitting process, whereby the large-size mesh representation is fitted with a NURBS surface. The fitted NURBS surface approximates the surface of the original large-size mesh representation. A NURBS surface exhibits excellent algorithmic properties relative to mesh representations, including convex hull and variation diminishing properties, that lead to fast and numerically stable execution of certain geometric operations. Although a NURBS surface is compact compared to a corresponding large-size mesh representation, in order to reproduce fine details of a large-size mesh representation via a NURBS surface, a large number of control points need to be included in the NURBS surface. The number of control points can oftentimes exceed one million. Even though certain characteristics of NURBS surfaces can be exploited to simplify the process of converting a large-size mesh representation into a NURBS surface, as the number of control points increases, the conversion process can nonetheless overwhelm a conventional CAD system in terms of both memory use and processing requirements. Moreover, large-size mesh representations often include imperfections, such as holes or surface gaps. When a large-size surface representation is fitted with a NURBS surface that includes such imperfections, the resulting NURBS surface may exhibit corresponding imperfections.
To address the above issues, a “remeshing” process can be implemented when converting a large-size mesh representation into a NURBS surface. When being remeshed, the large-size mesh representation is divided into thousands of smaller quad-patches based on local principal curvature directions. The quad-patches are then individually converted into smaller NURBS surfaces that are subsequently “stitched” together to approximate the surface of the original large-size mesh representation. Oftentimes, converting small quad-patches into NURBS surfaces and stitching the NURBS surfaces together consumes fewer processing and memory resources relative to converting a single large-size mesh representation into a single NURBS surface.
One drawback to remeshing a large-size mesh representation is that a high-quality remeshing is difficult to achieve when the original large-size mesh representation contains surface holes or cracks. In addition, certain applications, such as industrial design applications, may require curvature continuity, also referred to as G2 continuity, in order to meet aesthetic goals for the new design corresponding to a given large-scale mesh representation. However, remeshing typically guarantees only tangency, also referred to as G1 continuity, which is usually insufficient to meet G2 continuity requirements. Further, tolerance control is sometimes difficult to achieve when performing remeshing operations, and certain subsequent processing operations routinely performed on single NURBS surfaces may perform inefficiently or may fail altogether when applied to a collection of remeshed NURBS surfaces. Stated another way, a collection of remeshed NURBS surfaces lacks the beneficial algorithmic properties of a single NURBS surface, such as convex hull and variation diminishing properties that result in fast, numerically stable execution of geometric operations.
As the foregoing illustrates, what is needed are more effective ways to convert large-size mesh representations of objects into NURBS surfaces.